package com.ww.springboot.boot.javabase.type;

public class 引用传递与值传递 {
    public static void main(String[] args) {
        Integer var1 = new Integer(1);
        Integer var2 = var1;
        doSomething(var2);
        System.out.print(var1.intValue());
        System.out.print(var1 == var2);
    }


    /**
     * 形参为基本类型时，对形参的处理不会影响实参。
     * 形参为应用类型时，对形参的处理会影响实参。
     * String、Integer、Double等immutable类型，因为本身没有提供修改函数的操作，每次操作都是生成一个新对象，所以要特殊对待，可以理解为值传递，形参操作不会影响实参对象
     * @param integer
     */
    public static void doSomething(Integer integer) {
        integer = new Integer(2);
    }
}
